1
수업 7: 전이 학습 – 지식 활용하기
EvoClass-AI002강의 7
00:00

수업 7에 오신 것을 환영합니다. 여기서 우리는 전이 학습. 이 기술은 이미 거대하고 일반적인 데이터셋(예: ImageNet)에서 훈련된 딥러닝 모델을 재사용하여 새로운 특정 과제(예: 저희의 음식 시각화 도전 과제)에 적응시키는 것입니다. 레이블이 붙은 데이터셋이 제한적인 경우에 특히, 최첨단 성능을 효율적으로 달성하는 데 필수적입니다.

1. 사전 훈련된 가중치의 힘

딥 신경망은 계층적으로 특징을 학습합니다. 낮은 레이어는 기본 개념(선, 모서리, 질감)을 배우고, 더 깊은 레이어는 이를 복합 개념(눈, 바퀴, 특정 물체)으로 조합합니다. 핵심 통찰은 초기에 학습된 기본 특징들이 대부분의 시각적 영역에서 보편적으로 적용 가능다양한 시각적 영역에서 보편적으로 적용될 수 있다는 점입니다.

전이 학습 구성 요소

  • 원본 작업:1,400만 장의 이미지와 1,000개 범주에서 훈련(예: ImageNet).
  • 목표 작업:더 작은 데이터셋(예: 저희의 특정 음식 시각화 클래스)을 분류하도록 가중치를 적응시키기.
  • 활용된 구성 요소:네트워크의 대부분의 파라미터—특징 추출 레이어—는 직접 재사용됩니다.
효율성 증가
전이 학습은 두 가지 주요 자원 장벽을 크게 줄입니다: 계산 비용(일주일 이상 모델 전체를 훈련하지 않아도 됩니다) 및 데이터 요구량(수백 개의 훈련 예제로도 높은 정확도를 달성할 수 있습니다).
train.py
터미널bash — pytorch-env
> 준비 완료. 실행하려면 "실행"을 클릭하세요.
>
텐서 검사기실시간

활성 텐서를 확인하려면 코드를 실행하세요.
질문 1
새로운 시각 작업에 대해 ImageNet에서 사전 훈련된 모델을 사용하는 주된 장점은 무엇인가요?
초기 훈련보다 덜 많은 레이블 데이터를 필요로 합니다.
훈련 데이터가 전혀 필요 없게 만듭니다.
즉시 100%의 정확도를 보장합니다.
질문 2
전이 학습 워크플로우에서 신경망의 어떤 부분이 일반적으로 동결되나요?
최종 출력 레이어(클래스피어 헤드).
컨볼루션 기반(특징 추출 레이어).
전체 네트워크는 일반적으로 동결되지 않습니다.
질문 3
PyTorch에서 분류기 헤드를 교체할 때, 동결된 기반에서 먼저 결정해야 할 파라미터는 무엇인가요?
대상 데이터의 배치 크기.
입력 특징 크기(마지막 컨볼루션 레이어의 출력 차원).
모델 파라미터의 총 수.
도전 과제: 분류기 헤드 적응시키기
음식 시각화를 위한 새로운 분류기 설계하기.
ImageNet에서 사전 훈련된 ResNet 모델을 로드합니다. 마지막 특징 레이어는 크기가 512인 벡터를 출력합니다. 당신의 '음식 시각화' 프로젝트에는 7개의 다른 음식 클래스가 있습니다.
단계 1
새로운 트레이너블 선형 레이어에 필요한 입력 특징 크기는 얼마인가요?
해답:
입력 특징 크기는 동결된 기반 레이어의 출력과 일치해야 합니다.
크기: 512.
단계 2
이 새로운 분류 레이어를 생성하기 위한 PyTorch 코드 스니펫은 무엇인가요(출력 이름이 `new_layer`라고 가정합니다)?
해답:
출력 크기 512가 입력이고, 클래스 수 7이 출력입니다.
코드: new_layer = torch.nn.Linear(512, 7)
단계 3
새로운 선형 레이어에 필요한 출력 특징 크기는 얼마인가요?
해답:
출력 특징 크기는 목표 클래스 수와 일치해야 합니다.
크기: 7.